﻿using System.Threading.Tasks;
using Abp.Application.Services;
using LeadThing.AbpZeroTemplate.Authorization.Users.Profile.Dto;

namespace LeadThing.AbpZeroTemplate.Authorization.Users.Profile
{
    public interface IProfileAppService : IApplicationService
    {
        #region 个人管理
        Task<CurrentUserProfileEditDto> GetCurrentUserProfileForEdit();

        Task UpdateCurrentUserProfile(CurrentUserProfileEditDto input);

        Task ChangePassword(ChangePasswordInput input);

        Task UpdateProfilePicture(UpdateProfilePictureInput input);

        Task<GetPasswordComplexitySettingOutput> GetPasswordComplexitySetting(); 
        #endregion

        #region APP接口

        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task ChangePasswordApp(ChangePasswordAppInput input);

        /// <summary>
        /// 根据用户名修改密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task ChangePasswordByUserNameApp(ChangePasswordAppInput input);

        /// <summary>
        /// 修改头像
        /// </summary>
        /// <returns></returns>
        Task UpdateProfilePictureAPP(UpdateProfilePictureAPPInput input);

        #endregion
    }
}
